#ifndef __DISK_H__
#define __DISK_H__
#pragma once

#include <windows.h>
#include <iostream>
#include <math.h>
#include <string>
#include "FlashStickTestTypes.h"

using namespace std;

class Disk
{
public:
	Disk(wstring wDiskName, EDeviceType m_eDevType, EIOType	m_eIoType);
	~Disk(void);

	bool DoOverlappedIO(void* pBuffer, int nBytesCount, DWORDLONG dwlPrepareOffset = 0, int* pnOpSectors = NULL, float* pfIoTimeMsec = NULL);
	bool OpenDisk();
	bool CloseDisk();
	bool CreateOverlappedEvent();



	wstring		m_wDiskName;
	HANDLE		m_phDiskFile;
	HANDLE		m_hCompletionQueue;
	EDeviceType m_eDevType;
	EIOType		m_eIoType;
	OVERLAPPED	m_oOverlapInfo;

};

#endif // __DISK_H__